home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Source / MacTech® Magazine / Volume 06 - 1990 / 06.11 Nov 90 / FKEY Source Code / Selection Sort / UpdateSel.c < prev   
Encoding:
C/C++ Source or Header  |  1989-11-20  |  1.6 KB  |  100 lines  |  [TEXT/KAHL]

  1. #include "ToolSort.h"
  2.  
  3. /*=========================================================================
  4. Module:        UpdateSel
  5.  
  6. Purpose:    Put seltxt into scrap.
  7.  
  8. Returns:    err
  9.  
  10. =========================================================================*/
  11.  
  12. UpdateSel( txt )
  13.     Handle    txt;        /* text to be placed into scrap */
  14.     {
  15.     
  16.     long    len;        /* length of txt */
  17.     long     err = 0;    
  18.     
  19. #if DESK_SCRAP
  20.  
  21.     if ( txt != NIL )
  22.         {
  23.         len = GetHandleSize( txt );
  24.         err = ZeroScrap();
  25.         if (err == noErr && len > 0)
  26.             {
  27.             HLock( txt );
  28.             err = PutScrap( len, 'TEXT', *txt );
  29.             HUnlock( txt );
  30.             }
  31.         }
  32.     else
  33.         err = Nil_Hand_Error;
  34.         
  35.     switch( err )
  36.         {
  37.         case noErr:
  38.             if ( len == 0 )
  39.                 err = Empty_Error;
  40.             else if ( len < 0 )
  41.                 err = Sys_Error;
  42.             break;
  43.         case noScrapErr:
  44.             err = Scrap_Error;
  45.             break;
  46.         case memFullErr:
  47.             err = Memory_Error;
  48.             break;
  49.         default:
  50.             if (err < 0)
  51.                 err = Sys_Error;
  52.         }
  53.             
  54. #else
  55.  
  56.     if ( txt != NIL )
  57.         {
  58.         len = GetHandleSize( txt );
  59.         err = ZeroScrap();
  60.         if (err == noErr && len > 0)
  61.             {
  62.             HLock( txt );
  63.             err = PutScrap( len, 'TEXT', *txt );    /* copy txt to Desk scrap */
  64.             HUnlock( txt );
  65.             if ( err == noErr )
  66.                 {
  67.                 err = TEFromScrap();                /* copy desk scrap to TE scrap */
  68.                 if ( err != noErr )
  69.                     err = TEScrap_Error;
  70.                 }
  71.             }
  72.         }
  73.     else
  74.         err = Nil_Hand_Error;
  75.  
  76.     switch( err )
  77.         {
  78.         case noErr:
  79.             if ( len == 0 )
  80.                 err = Empty_Error;
  81.             else if ( len < 0 )
  82.                 err = Sys_Error;
  83.             break;
  84.         case noScrapErr:
  85.             err = Scrap_Error;
  86.             break;
  87.         case memFullErr:
  88.             err = Memory_Error;
  89.             break;
  90.         default:
  91.             if (err < 0)
  92.                 err = Sys_Error;
  93.         }
  94.  
  95.     
  96. #endif
  97.  
  98.     return( err );
  99.     }
  100.